1. Field of the Invention
The present invention relates to content layout techniques and systems which are used to render content received via the Internet and world wide web.
2. Description of the Related Art
As a result of the wide acceptance and use of the Internet, world wide web (WWW), intranets, and open-standards technologies (Internet protocol technologies), computer enthusiasts and business users (collectively, xe2x80x9cusersxe2x80x9d) have become dependent on the same to receive information and content related to particular points of interest. For example, many users now rely on the WWW to conduct routine tasks such as performing research about a particular topic, retrieving content related to particular events, and engaging in commerce with merchants who operate electronic storefronts. In many respects, the WWW has enabled increased and efficient distribution of information and has opened whole new markets. The growth and expansion of the WWW has created a corresponding and ever-changing expanse of content that may be retrieved and processed by users.
To receive content via the Internet and WWW, users typically utilize what is referred to as a xe2x80x9cweb browser.xe2x80x9d Typical web browsers are configured as client programs (clients) that may be executed on a personal computing system to access network resources and, in particular, server computer systems which act as web servers, request specific content in the form of web pages, receive such content, and render or layout such content on a visual display device of the personal computing system (or on some other device depending on the nature of the content retrievedxe2x80x94e.g., sound content, printer output content, etc.). Widely used and well-known web browser software packages include the Netscape(copyright) Communicator(trademark) Suite of client products (e.g., web browser, mail client, etc.) which is manufactured and marketed by NETSCAPE COMMUNICATIONS CORP., and the MicroSoft(copyright) Internet Explorer(copyright) web browser.
Many web browsers are implemented as software packages that are built based on traditional object-oriented programming techniques and based on conventional client-server paradigms. That is, many web browsers rely on core functionality and corresponding software objects to process and render content retrieved from a web server. In turn, such software objects are accessed by application program interfaces (APIs) which are pre-arranged and configured to interact with such software objects in predefined and specific ways. If content is not recognized by the built-in software objects of a particular web browser software package (which are fully defined at compile-time of such web browsers), users of the same must resort to either upgrading their software or remain unable to retrieve and view rich, current content. As such, the producers of many web browsers must constantly enhance and further enable their web browser software packages in order to keep up with the ever-increasing and changing types of content that may be retrieved, processed, and, ultimately, rendered and laid-out.
To address the aforementioned problem associated with enhancing web browser software technologies and products to allow rendering and layout of ever-changing and new types of content, various technologies have been developed. For example, many browser software packages allow xe2x80x9chelper applicationsxe2x80x9d to be installed so that certain content may be processed accordingly. Compressed files of the xe2x80x9czipxe2x80x9d format, for example, may be distributed via the Internet and retrieved by a web browser client software package. After a zip file has been retrieved, a helper application such as a zip extraction utility may be used to extract a compressed filed stored according to the zip file format. Accordingly, helper applications allow web browsers to be enhanced through the addition and automatic-program-launching of separate and distinct specialized programs. Helper applications do not allow core functionality of a web browser software package to be changed or replaced with other functionality (or software) that will process and manifest content in a different way.
Another technology that has been widely used to enhance the functionality of web browser software packages is known as xe2x80x9cplug-inxe2x80x9d technology. Plug-ins enhance browser software packages by adding functionality in a more tightly-coupled way than helper applications. That is, plug-ins allow content received via the Internet to be processed within a separate processing environment (e.g., a window), but within a browser session. For example, many multimedia files such as sound files may be retrieved via the Internet and played through a multimedia player application which is implemented as a browser plug-in. Unfortunately, while browser functionality is greatly enhanced through use of plug-ins, plug-ins, do not allow core browser functionality (e.g., content rendering and layout) to be replaced with software objects that can process and render content in new and different ways from those already provided by web browser software producers.
To add greater flexibility in terms of browser software enhancement, browser software producers have enabled Java language processing engines that may be used to process Java applets. Basically, Java applets are programs that may be distributed via the Internet and received within a browser environment. The applet is given a screen space in which to operate. The applet is not able to generally control the disposition, rendering and layout of content generally within a particular web browser instance. And, in many instances, because of security, Java applets are prevented from accessing files which otherwise reside on a user""s computer and the like. As such, although Java applets enhance the web experience, they, like helper applications and plug-ins cannot currently be used to replace core browser functionality (e.g., margin layout, etc.) to control the layout and disposition of content within a browser environment generally.
Thus there exists a need to provide a system and method for rendering content received via the internet and world wide web in which any form of content including complex content containing instructions regarding content layout and the like may be processed without requiring a web browser software package to be capable of processing such content in advance of its receipt. To be viable such a system and method must be based on a new computer programming technique and paradigm that will allow tasks within a web layout environment to be delegated to new software objects that may become seamlessly executable during runtime execution of a web browser environment.
In view of the foregoing comments regarding the related art, the principal object of the present invention is to solve the aforementioned problems.
It is yet another object of the present invention to provide a content layout engine for rendering content received via the Internet and that is capable of being dynamically changed.
It is yet a further object of the present invention to provide a content layout engine for rendering content received via the Internet which takes advantage of task delegation techniques to accomplish core functions performed within the layout engine.
It is yet a further object of the present invention to provide a content layout engine for rendering content received via a network connection which allows replaceable software delegates (implemented in accordance with task delegation techniques) to replace program code to perform core functions with the content layout engine.
It is still another object of the present invention to provide a content layout engine for rendering content received via a network connection which is scalable and adaptable to new content standards and types.
By achieving the aforementioned and other objects, the present invention provides certain benefits to users of web browser and related computer software technologies, to developers of such technologies, and to content providers. For example, the layout engine provided by the present invention is a framework, not a monolithic layout xe2x80x9cmanagerxe2x80x9dxe2x80x94this benefits developers who need a rich system to manage complex geometric space, but want to extend and expand that process in novel ways. Extension is achieved by creating layout and part objects which interact with other elements inside a layout modeling scheme. Moreover, the layout engine operates independently of the underlying view systemxe2x80x94it collaborates with delegates of a particular software system""s view hierarchy to construct relationships at runtime. So long as such view delegates export data according to appropriate protocols, the actual user interface objects that are used to connect to the layout engine are irrelevant. Moreover, the layout engine is platform independent. Additionally, the layout engine is dynamicxe2x80x94the core framework is small and lightweight. The layout engine relies on the principal of xe2x80x9cleast complexity,xe2x80x9d which ensures that the framework dynamically expands at runtime to the degree that a particular software system requires. In other words, layout objects and processes aren""t created until needed.
The present invention achieves its objects and delivers the aforementioned benefits by providing a system for manifesting content received via the Internet by an automatic data processing system. The system includes a content retrieval module for retrieving content from the Internet. The content is arranged to be manifested by the automatic data processing system. Also included is a content manifestation module that is coupled to the content retrieval module. The content manifestation module is operable to receive a replaceable software delegate during its operation, and to manifest the content within the automatic data processing system in accordance with the replaceable software delegate. The replaceable software delegate controls the manifestation of the content by the content manifestation module.
According to another aspect of the present invention, provided is a computer readable medium containing instructions for controlling a computer system. The instructions for controlling the computer system include the steps of retrieving content from the Internet. The content is arranged to be manifested by the computer system. Other steps include receiving a replaceable software delegate, manifesting the content within the computer system in accordance with the replaceable software delegate. The replaceable software delegate controls the manifestation of the content by the computer system.
According to another aspect of the present invention, provided is a method for manifesting content received via the Internet which includes the steps of retrieving content from the Internet. The content is arranged to be manifested by an automatic data processing system. Other steps include receiving a replaceable software delegate, and manifesting the content within the automatic data processing system in accordance with the replaceable software delegate. The replaceable software delegate controls the manifestation of the content by the automatic data processing system.
According to another aspect of the present invention, provided is a system for manifesting content received via the Internet which includes a content manifestation device, a data storage device, and a processor which is coupled to the content manifestation device and to the data storage device. The processor is operative to retrieve content from the Internet, to receive a replaceable software delegate, to store the replaceable software delegate in the data storage device, and to cause the content manifestation device to manifest the content in accordance with the replaceable software delegate. The replaceable software delegate controls the manifestation of the content by the processor and the content manifestation device.
According to a final aspect of the present invention, provided is a system for distributing replaceable software delegates to automatic data processing systems in network environment. The system includes a data storage device and a processor that is coupled to the data storage device. The processor is operative to distribute content to an automatic processing system coupled to the processor via a network. The automatic data processing system is configured to manifest the content. The processor is further operative to distribute a replaceable software delegate to the automatic data processing system. The replaceable software delegate is configured to control the manifestation of the content by the automatic data processing system.